package vip.george.p0459;

public class P459 {

    public boolean repeatedSubstringPattern(String s) {
        int l = s.length();
        // 根据题目要求，单字符的串，为false
        if (l == 1) {
            return false;
        }
        for (int i =0; i < l/2; i++) {
            //如果长度不是当前子串的倍数，则当前子串不是有效子串
            if (l % (i +1) != 0) {
                continue;
            }
            //如果后一个字符和当前字符不相等，并且不是子串的开始字符，则当前子串不是有效子串
            char c = s.charAt(i);
            char c1 = s.charAt(i+1);
            if (c != c1 && c1 != s.charAt(0)) {
                continue;
            }

            //假设当前子串是s的有效子串
            boolean flag = true;
            //验证当前子串是否是s的有效子串
            for (int j = i+1; j < l; j++) {
                if (s.charAt(j) != s.charAt(j%(i+1))) {
                    flag = false;
                    break;
                }
            }
            //一直遍历到最后一个字符
            if (flag) {
                // 有效的子串
                // String matchedSubstring = s.substring(0, i + 1);
                // System.out.println(matchedSubstring);
                return true;
            }
        }
        return false;
    }


    public static void main(String[] args) {
        P459 p = new P459();
        System.out.println(p.repeatedSubstringPattern("a"));
        System.out.println(p.repeatedSubstringPattern("ab"));
        System.out.println(p.repeatedSubstringPattern("abab"));
        System.out.println(p.repeatedSubstringPattern("ababc"));
        System.out.println(p.repeatedSubstringPattern("abcabcabc"));
    }
}
